In a multitasking computer environment, the operating system or the programs divide the microprocessor's time among a number of different programs. Such programs frequently require that relatively small background tasks be performed, such as, for example, monitoring the selection of a user interface button, or the choice of a menu selection. Typically, such programs spawn a separate thread to perform such background tasks. Like all tasks, the process for starting such relatively small threads consumes limited system resources such as memory and processing time.
In addition to the consumption of memory and processor resources, other inefficiencies accrue through the use of such relatively small background threads. For example, task switching between active threads is a relatively resource intensive process. Consequently, the greater the number of threads an operating system must switch between, the greater the strain on system resources. Since it is not uncommon in modem operating systems to have 10-20 programs running, each of which may spawn off several individual background processes, the processor and memory can quickly become overburdened just handling relatively small background threads. Much of the processing is not related to the function of the background task itself, but rather to the system overhead required to handle thread switching. In fact, in some conventional operating systems, such as the MICROSOFT WINDOWS 95 operating system, spawning and maintaining a thread is a relatively inefficient process. Additionally, the operating system typically imposes a limit on the number of threads which can be active at any one time.
Eliminating the system overhead required to handle the various background processing tasks would make more efficient use of the processor and the system memory. It is apparent that a background processor which performs required background processing chores, while eliminating the system overhead associated with maintaining multiple threads, and reducing memory consumption would be highly desirable.